const puppeteer = require('puppeteer-core')
const {scrollIntoView} = require("../puppeteer/scroll");

// 站点地址url
var url = `https://www.iesdouyin.com/share/user/97241835037`;

class GetDouyinComment {
    connect_webview = require('./connect_webview')
    constructor() {
        this.page = null;
        this.browser = null;
    }

    async init(webviewId, cookiesArray) {
        // 连接webview
        this.page = await this.connect_webview(webviewId, cookiesArray)
        // 允许执行js脚本
        this.page.setJavaScriptEnabled(true);

        // this.getVideo();

        // 滚动10秒加载数据
        await scrollIntoView({page: this.page, selector: 'footer[data-e2e="page-footer"]', totalSeconds: 10 })

        // //确保 滚屏加载数据
        // for (let i =0;i<5;i++){
        //     this.scrollPage();
        // }
        //关闭浏览器
        // await this.browser.close();
    }
    /* 页面滚动方法 */
    async scrollPage() {
        console.log('鼠标滚动，加载数据');
        //执行js代码（滚动页面）
        await this.page.evaluate(() => {
            window.scrollTo(100, document.body.offsetHeight)
        })
    };
    async getVideo() {
        // 打开页面
        await this.page.goto(url);
        let page = await this.page;
        //监听响应事件
        page.on('response', response => {
            // 查看所有请求地址
            // console.log(response.url());
            // 匹配所需数据的请求地址
            if (response.url().indexOf('https://www.iesdouyin.com/web/api/v2/aweme/post') !== -1) {
                // 获取数据并转为json格式
                let promise = response.json()
                    .then(data => {
                        //todo 打印输出数据，或者是保存入库
                        console.log(JSON.stringify(data));
                        if (data.has_more) {
                            this.scrollPage();
                        }
                    })
            }
        });
    }
}
let getDouYin = new GetDouYin();
getDouYin.init();